Retracing steps

ABSTRACT

Techniques for creating breadcrumbs for a trail of activity are described. The trail of activity may be created by recording movement information based on inferred actions of walking, not walking, or changing floor levels. The movement information may be recorded with an accelerometer and a pressure sensor. A representation of a list of breadcrumbs may be visually displayed on a user interface of a mobile device, in a reverse order to retrace steps. In some implementations, a compass may additionally or alternatively be used to collect directional information relative to the earth&#39;s magnetic poles.

BACKGROUND

Typically, a conventional navigation system helps users locate routes orpaths from one location to other locations. However, the conventionalnavigation systems use maps, streets, and/or a Global Positioning System(GPS) to locate routes or paths. A problem exists with the conventionalnavigation systems when the user is in a building or other structure,where there are no street identifiers or a map. Another problem may beattributed to a poor or nonexistent connection to GPS satellites due tothe user being inside a building or other structure, due to reflectionoff the exteriors of large buildings or other objects, due todestructive interference of the signals from towers in urban areas, ordue to the type of construction materials used in some buildings. Theseproblems make it impossible to rely on the conventional navigationsystems to find paths or routes. Thus, when a recorded route or arecorded path is needed later, there would not be one available to helpthe individual retrace steps.

Another problem occurs when an individual parks their vehicle in anunderground parking garage with multiple vertical levels. Often, theconventional navigation systems do not allow the individual todistinguish between floors of the same parking garage. In particular,using conventional navigation systems, a vehicle parked in space 12 onthe first floor may look the same as space 12 on the third floor.

Another problem with conventional navigation systems is that theytypically require a user to initiate a function to activate recordingthe route or the path. The user may be in a hurry or preoccupied withother things and forget to turn on the function to record. Thus, when arecorded route or a recorded path is needed later, there would not beone available to help the individual retrace steps.

SUMMARY

This Summary is provided to introduce a selection of concepts in asimplified form that are further described below in the DetailedDescription. This Summary is not intended to identify key features oressential features of the claimed subject matter, nor is it intended tobe used to limit the scope of the claimed subject matter.

This disclosure describes creating a trail of activity, for example, tohelp users retrace steps to locate a vehicle, to find an item, or tosend the trail to a friend to locate a user. The process creates“breadcrumbs” for the trail of activity to record movement informationbased on inferred actions of the user. The movement information for eachbreadcrumb may be identified with contextual information, such aswhether the user was walking or not walking (e.g., running or riding ina vehicle) or whether the user was changing floor levels (e.g., walkingup or down stairs, moving on an escalator, or riding in an elevator).The movement information may be collected using an accelerometer and apressure sensor to analyze whether to add the movement information to anexisting breadcrumb or to create a new breadcrumb. The breadcrumbs arecompiled together to create the trail of activity. Also, a visualrepresentation of a recorded trail of breadcrumbs may be displayed on auser interface and/or presented audibly to the user.

In some implementations, a compass may be used to collect directionalinformation relative to the earth's magnetic poles to associate with thebreadcrumbs.

BRIEF DESCRIPTION OF THE DRAWINGS

The Detailed Description is set forth with reference to the accompanyingfigures. In the figures, the left-most digit(s) of a reference numberidentifies the figure in which the reference number first appears. Theuse of the same reference numbers in different figures indicates similaror identical items.

FIG. 1 is a block diagram of an exemplary environment for creating atrail of activity breadcrumbs.

FIG. 2 is block diagram showing an exemplary mobile device usable tocreate, record, and store the trail in the environment of FIG. 1.

FIG. 3 is a schematic showing an exemplary user interface for displayduring recording of breadcrumbs for the trail.

FIG. 4 is a schematic showing an exemplary user interface for displayingan overview representation of the breadcrumbs for the trail withmovement information.

FIG. 5 is a schematic showing an exemplary user interface for displayinga representation of the breadcrumbs for the trail with movementinformation and directional information.

FIG. 6 is a schematic showing an exemplary user interface for displayinga detailed representation of a breadcrumb with a corresponding photo ofthe environment.

FIG. 7 is a schematic showing an exemplary user interface for displayinga detailed representation of a breadcrumb with corresponding informationof a map with GPS coordinates and a photo of the environment.

FIG. 8 is a schematic showing an exemplary user interface for displayinga probability that a breadcrumb from a saved trail, is near or not nearto the user's current location.

FIG. 9 is a schematic showing an exemplary user interface for displayinga representation of trails saved in memory of the mobile device.

FIG. 10 is a flowchart showing an exemplary process of recordingmovement information in memory of the mobile device.

FIG. 11 is a flowchart showing an exemplary process of recording themovement information and direction relative to the earth's magneticpoles on the mobile device.

FIG. 12 is a flowchart showing an exemplary process of determining aprobability that a user is near a particular breadcrumb or trail, bycomparing user's current location to a saved breadcrumb.

FIG. 13 is a flowchart showing an exemplary process of determining aprobability that a user is near a particular breadcrumb or trail, bycomparing user's current location to saved trails of activity.

DETAILED DESCRIPTION

Overview

As discussed above, conventional map-based or GPS navigation systems maynot always provide an effective way for a user to retrace steps. Forexample, in some instances (e.g., in a building or an undergroundgarage), it may be difficult to find a signal to implement conventionalnavigation systems. Moreover, conventional navigation systems may not beable to readily distinguish between vertical locations (e.g., a parkingspace on the first floor and the same parking space on the secondfloor). This disclosure describes various exemplary ways of creating,recording, and presenting “breadcrumbs” for a trail, without relying onmaps, streets, or availability of a GPS signal. This allows users to usethe information to retrace steps to, for example, locate a vehicle in anunderground garage that conventional map-based or GPS navigation systemsdo not.

In one implementation, when a user drives a vehicle and parks in anunderground garage, a mobile device may begin recording a trail ofactivity automatically. This may occur based on detecting that thevehicle is no longer travelling, such as the mobile device detecting noengine noise or a personal area network device losing an associationwith the mobile device. The trail of activity comprises a series ofbreadcrumbs. Each breadcrumb is a derived quantity using an inferencealgorithm on the sensor data collected on the mobile device. Thebreadcrumbs may be defined by the movement information (e.g., changes in3D location), directional information (e.g., changes in direction),and/or ambient sensor data (e.g., strength of WiFi and other variousambient signals).

Movement information is recorded using sensors based on inferred actionsof the user. Examples of sensors that may be used to record the movementinformation include, without limitation, an accelerometer to recordacceleration, a barometric pressure sensor to record changes inelevation, a temperature sensor, a light sensor, and/or GPS orcell-tower-based location information (when available).

In some instances, data pertaining to a direction relative to theearth's magnetic poles is collected for the trail of activity. The datacollected is referred to as directional information, which may berecorded by a navigation instrument relative to the earth's magneticpoles or other fixed points of reference. An example of a navigationinstrument to collect and to record directional information includes,without limitation, a compass.

Other sensors may also be used to collect ambient sensor data, which mayadditionally or alternatively be associated with the breadcrumbs. Theambient sensor data may provide a signature or “fingerprint” usable toidentify particular locations. These fingerprints may be used, forexample, to help identify when a user may be in a current location thatwas previously recorded in a trail of activity. In that case, sensordata including signal strengths of any nearby WiFi access points, GPS,other stationary devices broadcasting radio communications signals,radio stations, or other electromagnetic radiation may be compared withrecorded sensor data for one or more stored breadcrumbs. A probabilitythat a breadcrumb corresponds to the user's current location may bedetermined by comparing sensor information for the user's currentlocation to information in a saved breadcrumb. The probability indicatesa likelihood that a user is near a desired breadcrumb or trail. In someimplementations, the device may determine which breadcrumb has theclosest fingerprint to the user's current location, thereby indicatingwhich breadcrumb is likely the closest to the user's current location.

The mobile device may visually present a representation of breadcrumbsfor the trail on the user interface. This visual representation allowsthe user to view overviews of whole trails, portions of trails, and/ordetails of individual breadcrumbs to assist the user in following thepath that the trail indicates, in either a forward or a reversedirection. Realtime sensor data may be used by the trail program toautomatically choose the “current” breadcrumb. One example of use ofthis visual representation is that the user may retrace their steps tolocate a vehicle or other item. Another example is that a user mayfollow a trail, e.g. that their colleague sent, to find a particularlocation that their colleague previously travelled and have recorded asa trail. This visual representation also allows the user to visuallyverify that a recorded trail is accurate, and optionally edit the trail,before it is saved or sent to another mobile device.

Various techniques are described for creating, recording, and presentingbreadcrumbs for a trail of activity. By way of example and notlimitation, movement information may be recorded with or withoutdirectional information, with or without GPS information, and with orwithout a photo of the environment.

Illustrative Environment

FIG. 1 is a block diagram of an exemplary environment 100 in which atrail of activity may be created. The environment 100 includes exemplarymobile devices 102(1), 102(2), . . . , 102(N), which may take a varietyof forms, including, but not limited to, a cellular telephone 102(1), asmart phone 102(2), a PDA, or any other mobile device 102(N) capable ofhosting sensors to record the movement and the directional information.The mobile device 102 is typically carried daily in a pocket or a purseby a user 104.

In the illustrated example, the user 104 carries the mobile device 102that has a trail of activity application 106. In this example, the user104 parked their vehicle 108 on a lower level 110 of an undergroundgarage. In a conventional GPS or map-based navigation system, the user104 would not be able to receive a signal for a GPS unit, or to identifya map for the underground garage to record a path. However, using thetechniques described herein, the trail of activity application 106 isnot only able to record the path in the underground garage but toautomatically start recording the trail once the mobile device 102 hasdetected no engine noise, when the vehicle is in a parked position. Thatis, the trail of activity application 106 may start recording when theuser 104 exits the vehicle, and may record the user 104 walking up thestairs 112 to the second level 114 and walking through the building 116to their office. Alternatively, the trail of activity application 106may start recording as soon as a GPS signal, wireless signal (e.g., asignal from a Bluetooth® hands free device in the vehicle, a signal froma Wi-Fi access point in the office, or a broadcast radio signal), orother signal is lost.

In the illustrated example, the mobile device 102 may cease recordingupon detecting a GPS signal (e.g., when the user exits the garage orbuilding) or a wireless signal (e.g., a signal from a Bluetooth® handsfree device in the vehicle, a signal from a WiFi access point in theoffice, or a broadcast radio signal). Other ways of cease recording aredescribed below.

Exemplary Mobile Device

FIG. 2 is a block diagram showing an exemplary mobile device 102configured to generate trails of activity. The mobile device 102 may beconfigured as any suitable device capable of implementing the trail ofactivity application 106. In one exemplary configuration, the mobiledevice 102 includes a processor 200 and memory 202.

Turning to the contents of the memory 202 in more detail, the memory 202may store computer instructions that are loadable, embedded, or encoded,and executable on the processor 200. The memory 202 includes anoperating system 204, the trail of activity application 106, and a trailof activity user interface (UI) module 206 that, when executed on theprocessor 200, collectively facilitate presentation of a user interfaceon a display of the mobile device 102. Details of several illustrativeuser interfaces that may be presented are described below in FIGS. 3-9.

In an implementation, the memory 202 includes an accelerometer module208 and a pressure sensor module 210 (e.g., a barometer or a digitalpressure sensor) to collect acceleration and elevation data forrecording the movement information and a compass module 212 to receivedirection data relative to the earth's magnetic poles for recordingdirectional information. In some implementations, the accelerometermodule 208 and the pressure sensor module 210 collect sensor data forthe movement information without the directional information.

The memory 202 may also include other modules 214 including, but notlimited to, a magnetometer module, a wireless local area network module,a global positioning system (GPS), a cellular radio module, an amplitudemodulated (AM) and/or frequency modulated (FM) radio module, atemperature module, an audio module, a light module, and the like.Alternatively, any or all of these other modules 214 may be embodied asintegrated circuits or, sensors, or other hardware devices, rather thanbeing implemented as software modules stored in memory. In oneimplementation, the wireless personal area network module of the mobiledevice 102 may lose a wireless signal from a personal device located inthe vehicle (e.g., a hands free dialing device), indicating the personaldevice is no longer in range. Once this connection is lost, the trail ofactivity application 106 may automatically start collecting sensor datafor recording the movement information. In some implementations, themobile device 102 may additionally or alternatively lose a signal from aGPS unit, which may automatically start collecting data.

In another implementation, the temperature module may be used to detectthat the user 104 with the mobile device 102 has left the vehicle tostart recording. This occurs when the temperature sensor detects achange in temperature reading for a predetermined time interval. Forexample, the temperature changes when moving the mobile device 102 fromthe vehicle (e.g, warm temperature) in the underground garage (e.g.,cooler temperature) to an office located inside a building (e.g., warmertemperature). The trail of activity application 106 may start and stopmaking inferences based on the recording of the movement information dueto the temperature changes that occur within a time period. For example,the temperature change may occur during approximately about afive-minute period.

In another example, the various sensing modules in FIG. 2 may detectmovement of the mobile device 102 travelling from the undergroundparking garage until the sensors detect no movement, for a predeterminedtime interval. For example, a time interval of approximately seven toten minutes, indicates that the mobile device 102 is stationary in theoffice. The trail of activity application 106 may terminate recordingthe movement and the directional information. The trail of activityapplication 106 interacts with the accelerometer module 208, thebarometer module 210, and the compass module 212 to automatically startcollecting the sensor data and recording the information for breadcrumbsfor the trail of activity.

In another example, the trail of activity application 106 may startrecording when it detects by audio that the vehicle engine is beingturned off. The detection may also occur through monitoring a vibrationthat the engine causes based on information collected by theaccelerometer or directly signaled by the vehicle based on datanetworking. In a further example, the trail of activity application 106may detect the user's motion in exiting the vehicle (e.g. the usermoving from sitting to standing) based on information collected by theaccelerometer or other sensors, and use that as a signal to startrecording the trail. In yet another example, the trail of activityapplication 106 may perform short-term continuous recording undercircumstances where the user 104 is in the vehicle, so that if detectionof the user 104 exiting the vehicle is delayed, the previous data isnonetheless recorded so that the breadcrumb trail may be created fromthe actual exit event rather than at a later time when the sensing ofthe exit event is unambiguous.

The memory also includes a haptic module 216 to provide feedback on thebreadcrumbs. The haptic module 216 indicates through a vibration to theuser 104 that the movements in a single breadcrumb have been completedor the user 104 is headed in the wrong direction. This helps give theuser 104 an indication of whether one is headed towards the correctdirection. For example, after movement in a breadcrumb has beencompleted, the mobile device 102 may vibrate to indicate to the user104, to advance to the next breadcrumb, if headed in the correctdirection. Alternatively, the mobile device 102 may vibrate to indicateto the user 104 when headed towards a wrong direction. Otheralternatives of providing feedback to the user, including but notlimited to a beep, displays in the environment that the user is headingtowards the correct direction, or lighting an LED to help the user 104retrace their steps. The display in the environment may be a uniquesymbol to move towards a particular direction. While the LED may lightup to indicate to the user to head towards a particular direction.

The memory 202 also includes a speech synthesis module 218 thatinteracts with the UI module 206 and content storage 220 to performtrail of activity functions. A text-to-speech (TTS) system convertsnormal language text into speech using one or more known techniques. Thespeech synthesis module 218 creates audible speech from pieces ofrecorded speech stored in the content storage 220. In particular, thespeech synthesis module 218 may present the movement and the directionalinformation for the breadcrumbs in an audible manner. The speechsynthesis module 218 may also include voice recognition functionality toconvert readings for the movement information and the directionalinformation to text using one or more known techniques.

The memory 202 also includes the content storage 220 for locally storingone or more trails, for storing GPS coordinates on a map, for storingnew sensor data that is being collected of a user's current locationwith a wireless local area network module or with a global positioningsystem (GPS) module, for storing photos or images corresponding to thebreadcrumbs of the trail, for storing recordable speech patterns, andthe like. The memory 202 may also include one or more other applicationsor modules (not shown) for implementing various other functionality,such as an appointment calendar application, an email application, aword processing application, a media player application, and the like.

The mobile device 102 may also contain communications connection(s) 222that allow the processor 200 to communicate with servers, the userterminals, other mobile devices, and/or other devices on a network. Thecommunication connection(s) 222 may include a wide area network (WAN)module, a local area network module (e.g., Wi-Fi), a personal areanetwork module (e.g., Bluetooth®), a navigation module (e.g., GPS),and/or any other suitable communication modules to allow the mobiledevice 102 to communicate over the network. In particular, the mobiledevice 102 may be in communication with the vehicle (or other objectwhich the breadcrumb trail leads to) in order to, e.g., be signaled thatthe vehicle is stopped and the recording should begin for the trail.Also, the communication may be used in order to use sensors on otherdevices that may indicate the trail. For example, the user's vehicle mayhave sensors, such as pressure sensors, inertial tracking sensors,magnetometers, etc that allow the vehicle's movements to be tracked.This data, although it is not directly part of the breadcrumbs (as thevehicle may take a different path to the user) may help the trail ofactivity application 106 in creating accurate breadcrumbs. For example,the vehicle sensor indicates that the vehicle is located on floor 3, andthe barometric pressure sensor on the mobile device gives ambiguous datawhen the user leaves the vehicle park. The data may indicate the userdescended 2.5 floors (halfway between 2 and 3 floors). However, thevehicle's prior sensor data may be used to disambiguate this data and bemore certain that the elevator travelled 3 levels of floors.

The trail of activity application 106 may also automatically discontinueor terminate recording the movement information for the trail. Therecording may stop for many reasons including but are not limited to,detecting the mobile device 102 has been stationary for a predeterminedtime interval, detecting a GPS signal upon the user 104 exiting theoffice or coming out of the underground garage, sensing a temperaturedifference moving from the vehicle parked outdoors to the indoor officeenvironment, and/or detecting a wireless signal (e.g., a signal from aBluetooth® hands free device in the vehicle, a signal from a Wi-Fiaccess point in the office, or a broadcast radio signal).

Exemplary Mobile Device User Interface

FIGS. 3-9 illustrate exemplary user interfaces that may be presented onthe mobile device 102 of the user 104. However, in certain instances,when a saved trail is transmitted to another mobile device, the trailmay be presented on the other mobile device belonging to a recipient.Some mobile devices have large touch-screen interfaces, alpha-numerickeypads, and other forms of input and display. The user interfacesdescribed below are illustrative of user interfaces usable with atouch-screen interface. However, other user interfaces may be used ifother types of mobile devices are used.

FIG. 3 shows an exemplary user interface 300 for display duringrecording a breadcrumb for the trail of activity application 106. Inthis example, the user interface 300 includes a visual title applicationbar 302 that illustrates the trail of activity application 106 with alocal time. Also shown is a visual trail bar 304 that has been retrievedfrom a list of saved trails. The visual trail bar 304 includes a diagramof a vehicle indicative that the trail is for locating the vehicle, alocation for the vehicle such as “Seattle, Wash.”, along with manualcontrols to be able to play audibly the recording of the trail and to beable to delete the trail.

As previously mentioned in an implementation, the trail of activityapplication 106 is automatically programmed to start recording thebreadcrumbs for the trail. The recording may start upon detecting thatthe vehicle has stopped travelling due to the engine no longer makingnoise, the user 104 is walking versus riding in the vehicle, or themobile device 102 is losing a signal with a personal area network devicethat is located in the vehicle.

The user interface 300 also displays a representation of a breadcrumb306 to illustrate a current walking activity and a number of stepsutilized for the walking activity, “6 of 6 Walk 17 Steps.” A firstnumber “6” indicates this is a sixth breadcrumb out of a total of “6”breadcrumbs in the trail. In the illustrated example, the trail 106collects the barometer data 308 and the accelerometer magnitude data310, and may display the collected information on the user interface300. The data from the barometer and the accelerometer may be sampled at10 Hz, or at any other suitable sampling frequency.

The trail of activity application 106 computes the movement informationbased on the collected acceleration and changes in elevation data. Achange in barometric pressure determines whether the user 104 is walkingup or down the stairs. In some implementations, an average barometricpressure reading is being compared to a maximum barometric pressure anda minimum barometric pressure to determine whether the user 104 ischanging floor levels, such as walking up or down stairs or riding in anelevator. A barometric pressure change greater than approximately 50pascal (Pa) is identified as an elevation change. When the barometricpressure change occurs during a period of at most about eight seconds oftime, this may be representative of riding in an elevator and when thepressure change occurs during a period of more than eight seconds oftime, this may be representative of walking up or down the stairs. Thetrail of activity application 106 also computes the movement informationbased on a magnitude of accelerometer data to determine whether a user104 of the mobile device 102 is walking or not walking, and to countpeaks representing a number of steps for walking. The trail of activityapplication 106 computes the magnitude of the accelerometer data whenthe changes are approximately greater than 0.2 times the force ofgravity (g).

The user interface 300 may also include a field showing an accelerometerand a compass 312. The accelerometer may measure magnitude and relativedirection. The compass receives directional information, a directionrelative to the earth's magnetic poles. As shown, the face of thecompass highlights the cardinal points of north, south, east, and west.

The user interface 300 also includes a “Load File” field 314 by whichthe user 104 may save or import the sensor data for each of thebreadcrumbs into the memory and/or code the sensor data into themovement information. The Load File may be used to load a file of thestored sensor data collected, for demonstration or debugging purposes.In the illustrated example, the user interface 300 also includes a“Calibrate” field 316. Selection of the Calibrate field 316 may causethe accelerometer, the barometer, and/or the compass to be calibrated.Typically, a measuring equipment manufacturer generally assigns ameasurement tolerance, suggests a calibration interval, and specifiesthe environmental range of use and storage. The user 104 may assign anactual calibration interval, which is dependent on the specificaccelerometer, barometer, and compass likely usage levels. In someimplementations, natural fluctuations in barometric pressure may occur.When natural fluctuations occur, the user 104 may try to identify theuser's current floor level in an underground garage, by re-calibratingpreviously collected sensor data to determine the floor level the user104 should go.

Similar user interface items that are described in FIGS. 3 and 4 willnot be described in the other exemplary user interfaces in FIGS. 5-9.For illustrative purposes, locating a vehicle is shown in the exemplaryuser interfaces. However, there are other uses for the trail of activityapplication 106, such as to find the user 104 in a theatre, in a concerthall, or sports arena by attaching or embedding the file saved in acommunication to transmit to another mobile device. In anotherimplementation, the trail may be used to find lost objects by retracingsteps to the location in which the object was last “seen” or tagged witha wireless signal identifier (e.g., in Bluetooth® range).

FIG. 4 shows another exemplary user interface 400 for displaying arepresentation of an overview of the breadcrumbs for the trail. In thisexemplary user interface 400, the representation of the breadcrumbdisplays a number of walking steps and relative floor level information.The number of walking steps and relative floor levels are movementinformation from sensor data collected with the barometer and theaccelerometer.

The user interface 400 includes a visual trail bar 402 with a diagramfor a vehicle and a location identified for the vehicle such as a garagelocated in Bellevue, “Garage, Bellevue.” The trail bar 402 also includesa day, as well as a local date and time, along with manual controls tobe able to play audibly the recording of the trail and to be able todelete the trail. For example, the recording may indicate to the user104, “Walk x steps” or “Walk x steps north”.

The user interface 400 also includes a field showing an amount of timein minutes and seconds to move from an initial starting position to anend position, such as the vehicle. The field 404 shows “4 minutes 11seconds”, and that it takes approximately “407 Steps” to walk from alocation to the vehicle. This gives an indication to the user 104 theamount of time and the number of steps to move from the location, suchas the office to the vehicle.

The user interface 400 displays a summary of all of the breadcrumbscompiled for the “Garage, Bellevue” trail. The breadcrumbs are arrangedinto logical groups of walking, elevator, stairs, or car. For example,breadcrumbs 1-3 may represent being inside a building and breadcrumbs4-6 may represent being inside the garage.

Shown is a row of breadcrumbs 406, with three breadcrumbs, identified as“1 of 6”, “2 of 6”, and “3 of 6”, indicating a first, a second, and athird breadcrumb for the trail. The first breadcrumb shows 1 of 6, awalking figure with “Walk 101 Steps.” Depending on the sensor datacollected every 10 Hz, the data collected may be for a new breadcrumb ormay be added to an existing breadcrumb. The collected sensor data mayreflect a change in barometric pressure, which is to create a newbreadcrumb (e.g, Stairs Up when there is a floor level change).Alternatively, the sensor data may reflect no barometric pressurechange, which suggests that the sensor data be added to the existingbreadcrumb, such as additional steps taken if the user 104 is walking.Shown next in the row is a representation of an elevator in 2 of 6, anelevator figure, “3 Floors Down.” Shown last in the row 406 is anotherrepresentation of a walking activity breadcrumb. By tapping on orselecting a single breadcrumb in the overview, the user 104 may bepresented with the breadcrumb selected of interest, by skipping theother breadcrumbs. The user interface may display the selectedbreadcrumb in detail. FIGS. 6-8 show representations of the breadcrumbsin detail.

Continuing to the next row of breadcrumbs 408, is a representation ofstairs, 4 of 6, stairs figure, “1 Floor Up” in a fourth breadcrumb outof six breadcrumbs. Next is another representation of a walking activitybreadcrumb in 5 of 6, and the last breadcrumb is an initial startingpoint, the vehicle which is 6 of 6. The two types of sensor datacollected is the minimum information to help locate the vehicle.Furthermore, the breadcrumbs may be presented on the user interface in areverse order starting with the last breadcrumb recorded to the firstbreadcrumb recorded, such as the initial starting point, the vehicle is6 of 6.

The user interface 400 also includes a “Settings” control field 410 bywhich the user 104 may control the settings for the trail of activityapplication 106 and a “Close” field 412 by which the user 104 may closethe trail of activity application 106.

FIG. 5 shows another exemplary user interface 500 for displaying arepresentation of an overview of a trail. In this representation, thebreadcrumbs for the trail include movement information and directionalinformation. The overview of the movement and the directionalinformation provides a summary of the breadcrumbs in one view. Aspreviously mentioned, the user 104 may select a single breadcrumb andadvance to a location represented in the breadcrumb, rather than goingthrough all of the breadcrumbs.

In this illustrated example, the mobile device 102 includes a compass502 attached to receive directional information relative to the earth'smagnetic poles for the trail. The trail of activity application 106augments and splits the walking activity breadcrumbs to include themajor compass directions. For example, a number of walking steps wouldbe split into a smaller number of walking steps by adding a directionfor each of the smaller number. The number of 100 steps may be splitinto north 51 steps and east 49 steps. In another implementation, themobile device 102 may include a magnetometer using inference algorithmsto determine a 3D orientation of the mobile device, with respect to theuser 104, to identify a direction for walking.

The user interface 500 includes a visual trail bar 504 with the name ofthe file saved as “Redmond, Wash.”, a day, a date and the local time.

The user interface 500 shows the representation of the breadcrumbs withthe major directional information in the walking breadcrumbs. Forexample, the first breadcrumb 506 shows 1 of 6, walking figure, “South19 Steps.” The other representations of the walking activity breadcrumbs508 may identify the major directional information, such as whether towalk towards a direction of north, east, south, or west and a number ofsteps to walk. The other representations of the level breadcrumbs mayindicate riding up or down in an elevator or walking up or down a flightof stairs, without the directional information.

FIG. 6 shows another exemplary user interface 600 for displaying arepresentation of a breadcrumb 602 that has been selected by the user104. As previously mentioned, the user 104 may want to select thebreadcrumb of interest, such as a second breadcrumb and skip a firstbreadcrumb. Shown in detail is the representation of the walkingactivity breadcrumb 602 that the user 104 selected from the trail ofbreadcrumbs. In certain instances, the user 104 may want to bypass theother breadcrumbs that are familiar to the user 104 and proceed directlyto the breadcrumb of interest to help locate the vehicle. The user 104may navigate between the breadcrumbs (not shown).

The user interface 600 shows a map 604 that has no GPS coordinates sincethere was no detection of a GPS signal. In some implementations, theremay be detection of a GPS signal as shown in FIG. 7. The user interface600 may display a representative photo or image 606 taken of theenvironment corresponding to each breadcrumb. The mobile device 102 mayinclude periodic picture taking functionality on a lanyard or worn on abeltline, or a SenseCam type camera may be used to capture environmentimages every five seconds. The images may be a supplement to theaccelerometer and the barometer data. In some implementations, theSenseCam type camera may be used with the directional informationreceived from the compass. In this example, the image from the camerashows where the vehicle is parked, on an “Orange Level”, a coloridentifier for a floor level.

FIG. 7 shows another exemplary user interface 700 for displaying arepresentation of a breadcrumb in detail that has been selected by theuser 104. Shown is the representation of a walking activity breadcrumb702 that the user 104 selected from the overview trail. A wirelesssignal (from a Bluetooth®, a Wi-Fi access point, a GPS unit, a broadcastradio) or cell-tower positioning information may be used to augment thebreadcrumbs, when such information is available. The various signals orcell-tower positioning information may be used to “fingerprint”locations in the trail of breadcrumbs to automatically determine acurrent location of the user 104.

The user interface 700 shows a map 704 illustrating a representation ofthe user's current location on the map. The map numbers 1 to 6correspond to the numbers for each of the breadcrumbs for the trail. Forexample, there are a total of 6 breadcrumbs, the numbers 1-2 are for therepresentation of the breadcrumbs identified as a first and a secondbreadcrumb, 1 of 6 and 2 of 6. The logical groupings of the breadcrumbsnumbered 1-2 represent the location inside the building and breadcrumbsnumbered 3-6 represent inside the garage. While the breadcrumbs numbered1-2 do not have precise GPS locations, they may be deduced to representsteps that occurred inside the building by associating the breadcrumblabels with the building. The GPS signal may “fingerprint” locations inthe trail of breadcrumbs to determine where the user 104 is currentlylocated relative to previously recorded movement information. A matchingmay occur by using currently sensed information from a wireless signal(Wi-Fi access point or a GPS unit) to previously recorded movementinformation for a breadcrumb.

Similar to the image discussion in FIG. 6, the user interface 700 mayalso display a representative image 706 taken of the environmentcorresponding to one or more of the breadcrumbs. In this example, theimage 706 shows where the vehicle is parked near an exit and on a floorlevel identified as “Blue Level.”

In some implementations, the map with coordinates from the GPS signalmay be combined with breadcrumbs in the trail. For example, the trail ofactivity application 106 may start recording when there is no GPS signaldetected and once a GPS signal is detected, the user 104 may combine theGPS information to help retrace their steps.

FIG. 8 shows another exemplary user interface for displaying aprobability that a breadcrumb selected by the user 104 matches sensorinformation collected for the user's current location. This probabilitymay be based, at least in part on comparison of current sensor data tosensor data collected from a Wi-Fi signal and/or a GPS signal.

The user interface 800 includes a “Probability” field indicating an “8%Accuracy” 802. The user interface also includes a Probability chart 804that gives an indication to the user 104 of whether the user's currentlocation matches the selected breadcrumb. The trail of activityapplication 106 compares previously recorded information in thebreadcrumb to current or newly sensed information to determine theprobability the user 104 is in the same location. The mobile device 102may receive information there is a match and the probability indicatesthe user 104 is headed towards a chosen direction or a chosen level.This visual representation allows the user 104 to review and confirmthat the selected breadcrumb is the breadcrumb that should be followedto locate the vehicle or that the user is headed in a correct path.

In this example, the user 104 chooses “Conference Center” location tolocate a vehicle, showing only an 8% accuracy that the user 104 iscurrently near the chosen location. Based on this accuracy informationof 8%, the user 104 may determine that the selected breadcrumb or trialis not near their current location.

The user interface 800 includes a “Then” field and “Now” field 806 toreflect the information for the trail that was previously collected as“Then” and the information for a current location of the user 104 as“Now.” As shown, the user interface 800 may display detailed fieldpositioning information 808 for the Wi-Fi signal, the GPS signal, andbarometer readings of maximum, minimum, and current for the “Then” fieldand the “Now” field 806.

FIG. 9 shows another exemplary user interface 900 for displaying arepresentation of a list of the trails saved on memory 202 of the mobiledevice 102. The user interface 900 includes a “Start New Recording”field 902 to begin recording movement information by first collectingsensor data for breadcrumbs in a new trail. The user interface 900 showsthe representation of the trails on the list 904.

Exemplary Creating and Presenting Trail Processes

As discussed above, creating, recording, and presenting a trail mayoccur in a variety of ways. FIGS. 10-13 are flowcharts showing exemplaryprocesses for creating the trail with movement information, creating thetrail with movement and directional information, presenting the trail onthe user interface, and determining a probability that a user's currentlocation corresponds to a saved breadcrumb or a trail. The processes areillustrated as a collection of blocks in logical flowcharts, whichrepresent a sequence of operations that can be implemented in hardware,software, or a combination. For discussion purposes, the processes aredescribed with reference to the computing environment 100 shown in FIG.1, the mobile device 102 shown in FIG. 2, and the user interfaces shownin FIGS. 3-9. However, the processes may be performed using differentenvironments and devices. Moreover, the environments and devicesdescribed herein may be used to perform different processes.

For ease of understanding, the methods are delineated as separate stepsrepresented as independent blocks in FIGS. 10-13. However, theseseparately delineated steps should not be construed as necessarily orderdependent in their performance. The order in which the process isdescribed is not intended to be construed as a limitation, and anynumber of the described process blocks maybe be combined in any order toimplement the method, or an alternate method. Moreover, it is alsopossible that one or more of the provided steps may be omitted.

FIG. 10 is a flowchart illustrating an exemplary process 1000 ofcreating breadcrumbs for a trail with the movement information. Avehicle has been travelling at a vehicle speed and reaches a parkedposition in an underground garage. The mobile device 102 of the user104, at block 1002, senses the vehicle is no longer moving by no enginenoise, the user 104 is walking versus riding, or through loss ofassociation with a personal network area device located in the vehicle,and automatically starts recording a trail on the trail of activityapplication 106 residing on the mobile device 102. The trail of activityapplication 106 automatically collects sensor data with the barometermodule and the accelerometer module. At block 1004, the mobile device102 will not begin recording a trail of activity when, for example, themobile device 102 is still moving, a wireless signal (e.g., presence ofa hands free device) is detected by the mobile device 102 indicating theuser is still in a vehicle, the user 104 may have turned off a recordingfunction by a manual control, or other conditions indicate thatrecording should not commence.

At block 1006, the mobile device 102 presents the user 104 with a userinterface 300 usable to display a recording interface, and at block1008, the mobile device 102 collects sensor data for the breadcrumbs forthe trail. As mentioned, the user interface 300 may show chartsrecording the barometer and accelerometer magnitude data. In otherimplementations, the user 104 may be using the mobile device 104 forother purposes, while the recording occurs in the background. Theprocess 1000 collects sensor data to record for the movement informationbased on inferred actions of the user 104, such as whether the user iswalking or not walking, whether the user is walking up or down stairs,or whether the user is riding up or down in an elevator.

Shown at block 1010, the process 1000 analyzes the sensor data collectedfor the movement information to determine whether to add the collectedsensed data to an existing breadcrumb or to create a new breadcrumb. Ifat block 1012, the collected sensor data indicates a change in altitudeand/or direction, then a new breadcrumb is created.

If at block 1010, the collected sensor data is not for a new breadcrumb,the process moves to block 1014. At block 1014, the collected sensordata may be added to an existing breadcrumb or as a breadcrumb to beadded to the trail.

At block 1016, the recording of the movement information for breadcrumbsceases. As previously mentioned, the recording may be terminated formany reasons that include but are not limited to, detecting a GPS signal(e.g., when the user exits the garage or building), detecting a wirelesssignal (e.g., a signal from a Bluetooth® hands free device in thevehicle, a signal from a Wi-Fi access point in the office, a broadcastradio signal), sensing a temperature difference, and detecting nomovement of the mobile device 102 for a predetermined time.

FIG. 11 is a flowchart showing an exemplary process 1100 of presentingthe movement information and the directional information on the mobiledevice. At block 1102, a trail of activity application 106 residing onthe mobile device 102 presents the user 104 with an option to view arepresentation of the trail. The user interface is usable to save or toselect a representation of the breadcrumbs for the trail. If the user104 does not want to view the trail, at block 1104, the trail is savedand added to a list of trails on the memory of the mobile device 102. Ifdesired, this trail may be sent to another mobile device 1106 to sharethe information with a friend to locate the user 104 in a theatre, atthe mall, and the like. The user 104 may attach or embed the saved trailin a form of communication (e.g., email, text message, etc.) to transmitto the other mobile device.

Returning to block 1102, the user 104 may want to view a representationof an overview of the trail of breadcrumbs. If the user 104 decides toselect a single breadcrumb of interest, the user 104 taps on the singlebreadcrumb on the overview 1108 (a single breadcrumb is shown in detailin FIGS. 6 and 7). A particular breadcrumb selected helps guide the user104, who may know the way to the garage but unsure of a floor level thatthe vehicle is parked, not certain of the number of steps, or know whichdirection to locate the vehicle.

At block 1110, the user interface presents the selected breadcrumbaudibly, visually, or through vibrating the mobile device 102 or makinga beeping noise. The application 106 may convert the movementinformation and directional information from a text description to anaudible content. In other implementations, the activity program 106 mayprovide output to the user 104 through beeps, vibrations, LED signal, orenvironmental symbol that the user 104 is headed in a wrong direction orthe correct direction.

FIG. 12 shows another exemplary process 1200 of determining aprobability that a user's current location is the same as or close to apreviously recorded movement information for a breadcrumb. At block1202, the mobile device 102 presents a user 104 with the user interfaceusable to browse through the list of trails. The process 1200 collectsnew sensor information in the background 1204 that has been generatedfrom a Wi-Fi signal or a GPS signal to determine the user's currentlocation.

At block 1206, the user 104 selects a breadcrumb from a trail to helpidentify where the user's current location is relative to breadcrumbsthat have been saved for that location. The process 1200 may include the“fingerprint” locations in the trail of breadcrumbs to automaticallydetermine where the user 104 is located relative to the recordedbreadcrumbs.

At block 1208, the process 1200 compares previously recorded movementinformation to the user's current location, from the new sensorinformation. The comparison determines the probability, whether the user104 is in the same location as a saved breadcrumb. At block 1210, theuser interface presents the probability of whether the new sensorinformation matches the information in the breadcrumb or does not matchthe information in the breadcrumb. The probability gives an indicationof likelihood of whether the user's current location matches theinformation in the breadcrumb.

For example, the mobile device 102 visually presents a representation ofthe probability with an accuracy percentage as shown in FIG. 8. Thisvisual representation of the probability with accuracy percentage allowsthe user 104 to review and confirm that the selected breadcrumb or pathis the breadcrumb that may be followed to the desired location (e.g., tolocate a vehicle, an item, or the user in a theatre).

In some instances, the probability with accuracy percentage may be verylow, such as the 8% shown in FIG. 8, indicating that it is unlikely thatthe user is at or near the location where the breadcrumb was recorded.

FIG. 13 shows another exemplary process 1300 of determining a breadcrumbhaving a highest probability of being at or near a user's currentlocation. At block 1302, the mobile device 102 presents the user 104with the user interface usable to browse through the list of trails. Theprocess 1300 collects new sensor information in the background 1304 thathas been generated from a Wi-Fi signal, a GPS signal, or other ambientsensor data to determine the user's current location.

At block 1306, the user 104 requests a breadcrumb from the trail havingthe highest probability of matching (i.e., being at or near) the user'scurrent location. The breadcrumb(s) with the highest probability to theuser's current location is computed at block 1308. After thebreadcrumb(s) with the highest probability are computed, thebreadcrumb(s) with the highest probability are displayed 1310 in rankorder on the user interface.

In another example, the application program 106 may automatically followthe user 104 retracing their steps. For example, the user 104 leaves theoffice to go towards the vehicle, the trail of activity application 106detects this trail and follows the user 104 in the path back to thevehicle, advancing from breadcrumb to breadcrumb, if needed. Asmentioned previously, if the user 104 is headed in a wrong direction,the trail of activity application 106 may make a beep noise or vibrateto prevent the user 104 from travelling further. If the user 104 pullsout the mobile device 102 to the trail user interface, the breadcrumbrepresenting the user's location may be shown automatically or presentedaudibly, “take elevator down two floors”. In some implementations, thetrail of activity application 106 may not be tracking the user'sprogress along the trail. Here, the process relies on a GPS signal or aWiFi signal to find the user's current location when the user 104 startsand requests a breadcrumb of the user's current location.

By way of example and not limitation, the above techniques may beimplemented to support sharing trail information among an individual orindividuals on a contact list or as part of a group communication. Inone example, the user 104 may transmit their location or the vehicle'slocation by transmitting the saved trail to, or to communicate with,other family members. The other family members may be attending the samefunction or event at a later time and need to locate the user 104.

Various instructions, methods, techniques, applications, and modulesdescribed herein may be implemented as computer-executable instructionsthat are executable by one or more computers, servers, ortelecommunication devices. Generally, program modules include routines,programs, objects, components, data structures, etc. for performingparticular tasks or implementing particular abstract data types. Theseprogram modules and the like may be executed as native code or may bedownloaded and executed, such as in a virtual machine or otherjust-in-time compilation execution environment. The functionality of theprogram modules may be combined or distributed as desired in variousembodiments. An implementation of these modules and techniques may bestored on or transmitted across some form of computer-readable media.

The subject matter described above can be implemented in hardware, orsoftware, or in both hardware and software. Although implementations ofcreating and presenting a trail have been described in language specificto structural features and/or methodological acts, it is to beunderstood that the subject matter defined in the appended claims is notnecessarily limited to the specific features or acts described above.Rather, the specific features and acts are disclosed as exemplary formsof exemplary implementations of creating and present breadcrumbs for thetrail. For example, the methodological acts need not be performed in theorder or combinations described herein, and may be performed in anycombination of one or more acts.

What is claimed is:
 1. A method implemented at least partially by a mobile device, the method comprising: responsive to determining that a signal from a global positioning system (GPS) associated with the mobile device is unavailable, collecting, by the mobile device, location data representative of movement information from an accelerometer and a pressure sensor; determining, based at least in part on the location data, that at least one condition associated with generating breadcrumbs for a trail has been satisfied; collecting ambient sensor data representative of ambient information from one or more wireless sources to create an ambient signature for individual breadcrumbs of the trail; determining, based at least in part on the location data, that a user of the mobile device is walking and a number of steps; determining that a change in barometric pressure has occurred; determining that the user is changing floor levels based on the change in barometric pressure occurring at a predetermined rate during a time interval; analyzing the movement information to designate whether to add to an existing breadcrumb of the trail or to create a new breadcrumb for the trail; recording the movement information based on collected sensor data; categorizing the breadcrumbs into logical groups that define the trail based on the recorded movement information including details on how each breadcrumb was navigated, wherein the logical groups correspond to different activity types; comparing sensor data for ambient information of a current location of the mobile device with the ambient signatures to identify whether the current location of the mobile device is at a specific breadcrumb of the breadcrumbs; visually displaying, on a display of the mobile device, (i) the movement information including details on how at least one breadcrumb in the logical groups was navigated and (ii) a representation that the mobile device is near the specific breadcrumb based at least on the compared ambient signatures, wherein the details on how at least one breadcrumb in the logical groups was navigated includes an identification of an activity type corresponding to the logical group of the at least one breadcrumb; and sharing the trail, including the breadcrumbs categorized into the logical groups that define the trail, with another mobile device.
 2. The method of claim 1, wherein recording the movement information comprises at least one of (i) activating a start function in response to detecting a manual action of the user on a user interface of the mobile device, and (ii) automatically recording in response to (a) determining the mobile device is no longer moving at a travelling vehicle speed based on an absence of engine noise, (b) detecting the user is walking versus riding in a vehicle, or (c) detecting a wireless personal area network device signal is no longer in range of the mobile device.
 3. The method of claim 1, further comprising discontinuing recording the movement information automatically (i) when the mobile device has been stationary for a period of time, (ii) when a change in temperature reading is detected for a predetermined time interval, (iii) when a GPS signal is detected, (iv) when a wireless signal is detected, (v) when a signal from a Wi-Fi access point is detected, or (vi) when a broadcast radio signal is detected.
 4. The method of claim 1, wherein sharing the trail with another mobile device includes: saving the trail as a file in a memory of the mobile device; receiving a selection of a saved file; and attaching or embedding the saved file in a communication to transmit to the other mobile device.
 5. The method of claim 1, wherein recording the movement information further comprises augmenting the movement information for the trail with data from at least one of: a compass, a magnetometer, a camera, a wireless local area network module, audio data, a GPS module, a cellular radio module, an amplitude modulated (AM) radio frequency, or a frequency modulated (FM) radio module.
 6. The method of claim 1, further comprising: recording directional information using a compass for the trail; associating the movement information with the directional information for the trail; grouping the movement information and the directional information recorded for breadcrumbs into logical groups that define the trail; audibly or visually presenting the trail in a reverse order; and audibly or visually presenting a number of steps to walk towards a direction or a number of floor levels.
 7. The method of claim 1, further comprising computing the ambient information based on the one or more wireless sources, the one or more wireless sources comprising at least one of a strength of one or more local area wireless access points, a GPS signal, one or more stationary devices broadcasting radio communications signals, or electromagnetic radiation.
 8. One or more non-transitory computer-readable media encoded with instructions that, when executed by a processor of a mobile device, cause the processor to perform acts comprising: responsive to determining that a signal from a global positioning system (GPS) associated with the mobile device is unavailable, obtaining, from sensors associated with the mobile device, sensor data associated with movement of the mobile device; determining, based at least in part on the sensor data, that a user of the mobile device is walking; generating, in response to determining the user is walking, a first breadcrumb for a trail of activity; assigning the first breadcrumb to a first logical group of a plurality of logical groups corresponding to different activity types, the first logical group corresponding to a walking activity type; determining, based at least in part on the sensor data, a number of steps of the user; associating the number of steps of the user with the first breadcrumb; determining, based at least in part on the sensor data, that the user is changing floor levels; generating, in response to determining the user is changing floors, a second breadcrumb for the trail of activity; assigning the second breadcrumb to a second logical group of the plurality of logical groups, the second logical group corresponding to an elevator activity type; presenting, on a display of the mobile device, representations of the first and second breadcrumbs both (i) individually and (ii) sequentially in a reverse chronological order starting with a breadcrumb associated with most recently obtained sensor data, wherein the representation of the first breadcrumb identifies the first logical group assigned to the first breadcrumb and the representation of the second breadcrumb identifies the second logical group assigned to the second breadcrumb, and sharing the trail, including the first and second breadcrumbs, with another mobile device.
 9. The one or more non-transitory computer-readable media of claim 8, wherein the instructions, when executed by the processor of the mobile device, cause the processor to perform acts further comprising: presenting a representation of the breadcrumbs of the trail of activity on a user interface, wherein each of the breadcrumbs in the representation of the breadcrumbs is selectable via the user interface to generate on the user interface corresponding sensor data obtained for the respective breadcrumb.
 10. The one or more non-transitory computer-readable media of claim 8, wherein the instructions, when executed by the processor of the mobile device, cause the processor to perform acts further comprising: presenting a representation of a breadcrumb selected from the trail of activity on a user interface; responsive to determining that a signal from the GPS associated with the mobile device is available, presenting a representation of GPS coordinates on a map corresponding to the trail of activity on the user interface; and presenting a representation of an image of an environment corresponding to the breadcrumb selected on the user interface.
 11. The one or more non-transitory computer-readable media of claim 8, wherein the instructions, when executed by the processor of the mobile device, cause the processor to perform acts further comprising: collecting new sensor data of current location of a mobile device with a wireless local area network module or a global positioning system (GPS) module; and determining a probability whether the new sensor data matches the breadcrumb that has been recorded and saved for the trail of activity.
 12. The one or more non-transitory computer-readable media of claim 8, wherein the instructions, when executed by the processor of the mobile device, cause the processor to perform acts further comprising: recording directional information from a compass; associating the directional information with the movement information; converting the movement information and the directional information from a text description to audible content; and audibly or visually presenting the movement information and the directional information in a reverse order of what was being recorded for the trail of activity.
 13. The one or more non-transitory computer-readable media of claim 8, wherein obtaining sensor data comprises collecting sensor data without the use of a GPS signal or cellular signal.
 14. One or more non-transitory computer-readable media storing instructions that, when executed by a processor of a mobile device, cause the mobile device to perform acts comprising: responsive to determining that a signal from a global positioning system (GPS) associated with the mobile device is unavailable, collecting accelerometer data and pressure sensor data from an initial starting position to an end position of the mobile device, the data to represent breadcrumbs of a trail of activity; collecting ambient data received from one or more wireless sources from the initial starting position to the end position of the mobile device; storing, based on the collected ambient data, an ambient signature for each of the breadcrumbs of the trail of activity; categorizing each of the represented breadcrumbs based on the collected accelerometer data and pressure sensor data, each representation of the breadcrumbs is categorized according to a type of activity associated with the breadcrumb, the type of activity inferred from the collected accelerometer data and pressure sensor data; comparing, via the processor of the mobile device, ambient data of a current location of the mobile device with the stored ambient signature of a categorized breadcrumb to identify whether the current location of the mobile device is at a specific breadcrumb of the breadcrumbs; visually presenting, on a display of the mobile device, (i) a first representation of the breadcrumbs of the trail of activity on a user interface and (ii) a second representation on the user interface that the mobile device is at a specific breadcrumb based at least on the compared ambient data of the current location and the ambient signature, wherein visually presenting the first representation of the breadcrumbs includes visually identifying the type of activity associated with each breadcrumb; and sharing the trail, including the categorized breadcrumbs, with another mobile device.
 15. The one or more non-transitory computer-readable media of claim 14, the user interface further comprising presenting a representation of a breadcrumb as: a number of floor levels to walk up or down stairs; a number of floor levels to ride in an elevator; or a vehicle.
 16. The one or more non-transitory computer-readable media of claim 14, the user interface further comprising presenting an amount of time in minutes and seconds and a number of approximate steps for travelling the trail of activity from the end position to the initial starting position following the breadcrumbs.
 17. The one or more non-transitory computer-readable media of claim 14, the user interface further comprising presenting a representation of a breadcrumb with directional information of north, east, south, or west combined with a number of walking steps.
 18. The one or more non-transitory computer-readable media of claim 14, the user interface further comprising: presenting a representation of a breadcrumb selected in the trail of activity; presenting a representation of GPS coordinates on a map, the GPS coordinates corresponding to the breadcrumbs in the trail of activity when a GPS signal is available; and presenting a representation of an image of an environment corresponding to the breadcrumb selected in the trail of activity.
 19. The one or more non-transitory computer-readable media of claim 14, the user interface further comprising: presenting a user interface usable to start recording a new breadcrumb for a new trail; and presenting a user interface usable to select a trail from the list of trails saved. 